// // import {
// //   GET_PRODUCT_INFO, GET_PRODUCT_TYPES, GET_PRODUCTS, GET_PRODUCTS_BY_ORG_ID,
// // } from '@/graphql/product';
// // import { useLazyQuery, useQuery } from '@apollo/client';
// import {
//   TProductTypeQuery, TProductsQuery, IProduct, TProductQuery,
// } from '@/utils/type';
// import {
//   useEffect, useRef, useState,
// } from 'react';
// import { DEFAULT_PAGE_SIZE } from '@/utils/constants';
// import { Toast } from 'antd-mobile';

// export const useProductTypes = () => {
//   const { data, loading } = useQuery<TProductTypeQuery>([]);

//   return {
//     data: data?.getProductTypes.data || [],
//     loading,
//   };
// };

// /**
//  * 商品列表
//  * @param type 商品类型
//  * @param name 关键词
//  */
// export const useProducts = (name = '', type = '') => {
//   const pageNumRef = useRef(1);
//   const [data, setData] = useState<IProduct[]>([]);
//   const [hasMore, setHasMore] = useState(true);

//   const [get] = useLazyQuery<TProductsQuery>( { fetchPolicy: 'no-cache' });

//   const init = async (pageNum = 1) => {
//     const toastHandler = Toast.show({
//       icon: 'loading',
//       content: '加载中…',
//     });
//     const res = await get({
//       variables: {
//         page: {
//           pageNum,
//           pageSize: DEFAULT_PAGE_SIZE,
//         },
//         name,
//         type: type === 'all' ? '' : type,
//       },
//       onCompleted() {
//         toastHandler.close();
//       },
//     });
//     return res.data?.getProductsForH5.data || [];
//   };

//   // 下拉刷新
//   const onRefreshHandler = async () => {
//     pageNumRef.current = 1;
//     const res = await init();
//     if (res.length > 0) {
//       setHasMore(true);
//     }
//     setData(res);
//   };

//   // 无限滚动
//   const loadMore = async () => {
//     const res = await init(pageNumRef.current + 1);
//     if (res.length > 0) {
//       pageNumRef.current += 1;
//       setHasMore(true);
//       setData((old) => [...old, ...res]);
//     } else {
//       setHasMore(false);
//     }
//   };

//   useEffect(() => {
//     onRefreshHandler();
//   }, [name, type]);

//   return {
//     data,
//     onRefreshHandler,
//     loadMore,
//     hasMore,
//   };
// };

// export const useProductsByOrgId = (orgId: string) => {
//   const { data } = useQuery<TProductsQuery>( {
//     variables: {
//       orgId,
//     },
//   });
//   return {
//     data: data?.getProductsByOrgIdForH5.data,
//   };
// };

// export const useGetProductInfo = (id: string) => {
//   const { data, loading } = useQuery<TProductQuery>( {
//     variables: {
//       id,
//     },
//   });

//   return {
//     loading,
//     data: data?.getProductInfo.data,
//   };
// };
